The present invention relates to the processing of network data frames. Specifically, a data structure for a data frame is disclosed along with an apparatus and method for modifying the data structure.
Computing networks transfer data to different devices over a network in frames. The frames have a header containing address information such as a destination address, source address and a data count. Appended to the header is a payload, which may typically be between 64-1,500 bytes of information for the destination address. A trailer is appended to the payload data and header data which includes error checking and error correcting bytes for correcting data containing a minor number of errors at the destination address.
These data frames encounter numerous devices during passage over the network. Specifically, routers, bridges and other devices may pass the data frame to another portion of the network, and in the process, modify the data. Specifically, it is known in router applications that occasionally a received data frame will require alteration of the data packets contained within the data frame. These alterations may be in the form of insertion of another data packet, deletion of a data packet or the joining or splitting of packet data before retransmission on the network.
The conventional process for modifying packet data requires copying or moving original data packets in a frame of data to a new memory location. Once moved, operations can be performed on the data to append or delete information from the data packet, and the revised data frame can then be transmitted over the network.
The conventional schemes for modifying data requires a higher packet memory access bandwidth, so that packet information can be read, modified and re-stored quickly. Some frame alteration operations require a read/modified write of the data packet to the packet memory which is usually implemented in a DRAM, increasing latency associated with packet processing as well as requiring a higher packet memory access bandwidth.
Routers which process the incoming network data frame may determine that the address information in the header is incomplete. Additional data is found in a routing table, which is necessary for the network data frame to be passed to an intermediary device such as another router, or a bridge, may need to be appended in the address portion of the header. Other operations which may have to be performed on the received network frame include splitting network data frames into two or more frames, or joining packets of one frame to another. These operations as well require moving and copying of the original data, burdening the memory bandwidth, increasing latency and reducing system performance.